﻿using Library.Common.Model;
using Synthesize.BaseSet.ServiceInterface.Dtos.Authority.Department;
using System.Threading.Tasks;

namespace Synthesize.BaseSet.ServiceInterface.UseCase.Authority
{
    public interface IDepartmentService
    {
        /// <summary>
        /// 创建部门
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Create(CreateDepartmentInput input);

        /// <summary>
        /// 更新部门
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> Update(UpdateDepartmentInput input);

        /// <summary>
        /// 更新部门-用户信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> UpdateDepartmentUser(UpdateUserDepartmentInput input);

        /// <summary>
        /// 删除部门
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> DeleteById(SingleDeleteInput input);

        /// <summary>
        /// 删除指定的用户-部门关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseApiResult<bool>> DeleteUserDepartment(DeleteUserDepartmentInput input);

    }
}
